package com.sbs.gaoxinqutoilet.utils;

import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.StateListDrawable;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;

import com.sbs.gaoxinqutoilet.myapp.MyApplication;

import java.util.Random;


/**
 * 封装UI相关操作的工具类
 * @author dzl
 *
 */
public class UiUtils {

	/** 在屏幕的中央显示一个Toast */
	public static void showToast(CharSequence text) {
		Toast toast = Toast.makeText(MyApplication.getContext(), text, Toast.LENGTH_SHORT);
		toast.setGravity(Gravity.CENTER, 0, 0);	// 设置Toast居中显示
		toast.show();
	}
	
	/** 把dp单位的值换算成像素单位的值 */
	public static int dp2px(int dp) {
		float density = MyApplication.getContext().getResources().getDisplayMetrics().density;	// 获取手机屏幕的密度
		int px = (int) (dp * density + 0.5f);	// 加0.5是为了四舍五入  
		return px;
	}

	/** 创建一个随机的颜色值 */
	public static int createRandomColor() {
		Random random = new Random();
		int red = 50 + random.nextInt(151);		// 范围：50 ~ 200
		int green = 50 + random.nextInt(151);	// 范围：50 ~ 200
		int blue = 50 + random.nextInt(151);	// 范围：50 ~ 200
		int color = Color.rgb(red, green, blue);
		return color;
	}

	/** 创建一个随机颜色选择器的TextView */
	@SuppressWarnings("deprecation")
	public static TextView createRandomColorSelectorTextView(Context context) {
		final TextView textView = new TextView(context);
		textView.setTextColor(Color.WHITE);
		int padding = dp2px(6);
		textView.setPadding(padding, padding, padding, padding);
		textView.setGravity(Gravity.CENTER);
		
		// 设置TextView背景
		textView.setBackgroundDrawable(createRandomColorSelector());
		
		// 设置文本的单击事件
		textView.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				UiUtils.showToast(textView.getText());
			}
		});
		
		return textView;
	}
	/** 创建一个随机颜色选择器*/
	private static Drawable createRandomColorSelector() {
		// 创建一个选择器对象
		StateListDrawable stateListDrawable = new StateListDrawable();
		
		// 创建按下状态和按下状态要显示的图片
		int[] pressState = {android.R.attr.state_pressed, android.R.attr.state_enabled};
		Drawable pressDrawable = createRandomColorDrawable();
		
		// 创建正常状态和正常状态要显示的图片
		int[] normalState = {};
		Drawable normalDrawable = createRandomColorDrawable();
		
		stateListDrawable.addState(pressState, pressDrawable);	// 指定按下状态显示的对应的图片
		stateListDrawable.addState(normalState, normalDrawable);// 指定正常状态显示的对应的图片	
		return stateListDrawable;
	}

	/** 创建一个随机颜色的圆角矩形 */
	private static Drawable createRandomColorDrawable() {
		// 创建一个Shape类型的Drawable
		GradientDrawable gradientDrawable = new GradientDrawable();
		gradientDrawable.setShape(GradientDrawable.RECTANGLE);	// 指定为矩形
		gradientDrawable.setCornerRadius(dp2px(6));	// 指定圆角的角度
		gradientDrawable.setColor(createRandomColor());	// 指定图形的颜色
		return gradientDrawable;
	}
}









